<?php

namespace Core\Presentation\HTML;

/**
 * A collection of nodes.
 *
 * A node may be an element, text or a widget.
 */
interface NodeCollectionI {

    /**
     * Gets all the nodes in the collection matching the expression.
     */
    public function all ( $strExpression );

    /**
     * Gets all the children matching the expression.
     */
    public function children ( $strExpression );

    /**
     * Gets all the descending nodes matching the expression.
     */
    public function find ( $strExpression );

    /**
     * Sets an attribute to all the element nodes in the collection.
     */
    public function setAttribute ( $strName, $strValue );

}

?>
